package com.example.homework.arraylist.homework02;

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        /*
        1.定义一个 Person 类
        (1)属性: 编号 id ( int 类型 ) 姓名 name（String 类型） 性别 sex （String 类型）
        (2)要求: 成员变量private修饰 生成空参构造/满参构造 生成set/get方法
        2. 在测试类中创建 6 个对象（对象数据如下）,依次将 Person 对象存入ArrayList集合对象中
            1,"尼古拉斯","男"
            2,"马尔扎哈","男"
            3,"迪丽热巴","女"
            4,"阿凡提买买提","男"
            5,"王宝强","男"
            6,"柳岩","女"
        3. 遍历集合删除其中性别为男且姓名长度大于等于 3 的元素,将剩余的元素数据打印在控制台
            打印如下:
            id:3    性别:女    姓名:迪丽热巴
            id:6    性别:女    姓名:柳岩
         */
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person(1, "尼古拉斯", "男"));
        list.add(new Person(2, "马尔扎哈", "男"));
        list.add(new Person(3, "迪丽热巴", "女"));
        list.add(new Person(4, "阿凡提买买提", "男"));
        list.add(new Person(5, "王宝强", "男"));
        list.add(new Person(6, "柳岩", "女"));

        // 使用stream流实现
        list.stream().filter(p -> !(p.getSex().equals("男") && p.getName().length() >= 3)).forEach(System.out::println);

        // 传统的遍历方式
        for (int i = 0; i < list.size(); i++) {
            // 取出当前索引对应的数据
            Person person = list.get(i);
            if (person.getSex().equals("男") && person.getName().length() >= 3) {
                list.remove(person);
                // 这里需要i--,否则会出现漏删的情况
                i--;
            }
        }
        System.out.println(list);
    }
}